css: Fix segfault when GtkCssStyleChange is NULL on gtk_widget_real_style_updated()
authorJuan Pablo Ugarte <ugarte@endlessm.com>
Thu, 14 Dec 2017 18:35:40 +0000 (15:35 -0300)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 14 Dec 2017 21:40:40 +0000 (16:40 -0500)
https://bugzilla.gnome.org/show_bug.cgi?id=791281

gtk/gtkwidget.c

index ee4ae277e00ea2f67001d2b682dbd3ed4a88a8a6..ff6d59dd8bcd24b914936779ffd6b735c3246488 100644 (file)
@@ -8162,12 +8162,15 @@ static void
 gtk_widget_real_style_updated (GtkWidget *widget)
 {
   GtkWidgetPrivate *priv = widget->priv;
+  GtkCssStyleChange *change = NULL;
 
   gtk_widget_update_alpha (widget);
 
   if (widget->priv->context)
+    change = gtk_style_context_get_change (widget->priv->context);
+
+  if (change)
     {
-      GtkCssStyleChange *change = gtk_style_context_get_change (widget->priv->context);
       const gboolean has_text = gtk_widget_peek_pango_context (widget) != NULL;
 
       if (has_text && gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_TEXT))
@@ -8175,8 +8178,7 @@ gtk_widget_real_style_updated (GtkWidget *widget)
 
       if (widget->priv->anchored)
         {
-          if (change == NULL ||
-              gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE) ||
+          if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE) ||
               (has_text && gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_TEXT_SIZE)))
             {
               gtk_widget_queue_resize (widget);